function format(c, f, h) {
    if (!f) return c;
    if ("object" !== typeof f) {
        var k = h || f;
        return c.replace(RegExp(h ? f: "{v}", "g"), "" + k)
    }
    return c.replace(h || /\{([^{}]+)\}/g, 
    function(c, h) {
        k = f[h];
        return "" + k
    })
};

var sign = 0;
$(function(){
	var l = $("#tags"),
	x = $(".selected", l).length;
	l.delegate("a", 
        "click", 
        function() {
            var a = $(this);
            var b = a.attr("data-id");
            a.is(".selected") ? ($("#tag" + b).remove(), a.removeClass("selected"), x--) : 3 <= x ? alert("问题最多只允许添加三个标签") : (x++, l.append(format('<input type="hidden" value="{v}" name="tag[]" id="{id}"/>', {
                v: b,
                id: "tag" + b
            })), a.addClass("selected"))
        });
	
	$("#editor").submit(function() {
		//初始变量
		var h = 64;
		
		//防重复提交
        if (1 === sign) return false;
        //标题判断
        var a = $.trim($("#editorTitle").val()).length;
        if (0 === a)
    	{
        	alert("标题不能为空");
        	return false;
    	}
        if (a > h)
        {
        	alert("标题字数不能超过" + h + "字");
        	return false; 
        }
        //内容判断
        var c = $.trim($("#bbcode").val()).length;
        if (5E3 < c)
        {
        	alert("补充说明内容不能超过5000字");
        	return false;
        }
        sign = 1;
    })
    
    //回答问题
    $("#answer_editor").submit(function() {
    	//防重复提交
        if (1 === sign) return false;
        //内容判断
        var c = $.trim($("#bbcode").val()).length;
        if (5E3 < c)
        {
        	alert("答案内容不能超过5000字");
        	return false;
        }
        sign = 1;
    })
    
    //顶
    $("#answers .answer-digg-up").die("click").live("click",function(){
    	//不能顶自己的答案
    	if ($(this).attr("data-user") == $(this).attr("data-cur"))
    	{
    		alert('自己不可以评断自己的答案');
    		return false;
    	}
    	//取出顶数据
    	var diggOBJ = $(this).closest(".answer").find(".answer-r .diggersData");
    	var diggersOBJ = $(this).closest(".answer").find(".answer-r .answer-diggers");
    	var _url = siteUrl+'index.php?app=ask&ac=ajax&ts=digg';
    	var answerid = $(this).attr("data-id");
    	$.ajax({
            async: false, // 默认true(异步请求)
            cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。
            type: "POST", // 默认:GET 请求方式:[POST/GET]
            url: _url, // 默认当前地址,发送请求的地址
            error: function(xml) {}, // 请求失败时调用
            timeout: 1000, // 设置请求超时时间
            data:"answerid=" + answerid,
            dataType: "json",
            success: function(xml) { // 请求成功后回调函数 参数：服务器返回数据,数据格式.
            	if (xml.code == 1)
            	{
                	var diggdata = diggOBJ.html();
            		var diggobj = JSON.parse(diggdata);
            		var arrOBJ = [{
            			    userid:xml.html.userid,
                    		username:xml.html.username
                		}];
            		
            		//处理来自html
            		var html = '，来自<span><a href="' + siteUrl + 'group/user/'+ arrOBJ[0].userid +'">' + arrOBJ[0].username + '</a>';
            		var digglength = diggobj.dig.length;
            		for(var i = 0; i < digglength; i++)
            		{
            			arrOBJ.push({
            				userid:diggobj.dig[i].userid,
            				username:diggobj.dig[i].username
            			})
            				
            			if (i < 2)
            			{
            				html += '、<a href="' + siteUrl + 'group/user/'+ diggobj.dig[i].userid +'">' + diggobj.dig[i].username + '</a>';
            			}
            		}
            		html += '</span>';
            		
            		if (digglength > 3)
            		{
            			html += '<a data-id="" class="expandDiggers" href="javascript:void 0;">更多...</a><span class="hide">';
            			for(var i = 2; i < digglength; i++)
                		{
            				html += '、<a href="' + siteUrl + 'group/user/'+ diggobj.dig[i].userid +'">' + diggobj.dig[i].username + '</a>';
                		}
            			html += '</span>';
            		}
            		
            		diggobj.dig = arrOBJ;
            		diggobj.num.d = parseInt(diggobj.num.d) + 1;
            		//投过反对
            		if (xml.html.diggflag == true)
            		{
            			diggobj.num.u = parseInt(diggobj.num.u) - 1 < 0 ? 0 : parseInt(diggobj.num.u) - 1;
            		}
            		
            		html = diggobj.num.d + '支持&nbsp;&nbsp;/&nbsp;&nbsp;' + diggobj.num.u + '反对' + html;
            		diggersOBJ.html(html);
            		
            		//重置script data中的数据
            		var jtext = JSON.stringify(diggobj);
            		diggOBJ.html(jtext);
            	}
            	if (xml.code == 0)
            	{
            		alert(xml.html)
            	}
            }
       });
    })
    //踩
    $("#answers .answer-digg-dw").die("click").live("click",function(){
    	//不能踩自己的答案
    	if ($(this).attr("data-user") == $(this).attr("data-cur"))
    	{
    		alert('自己不可以评断自己的答案');
    		return false;
    	}
    	
    	//取出顶数据
    	var diggOBJ = $(this).closest(".answer").find(".answer-r .diggersData");
    	var diggersOBJ = $(this).closest(".answer").find(".answer-r .answer-diggers");
    	var _url = siteUrl+'index.php?app=ask&ac=ajax&ts=undigg';
    	var answerid = $(this).attr("data-id");
    	$.ajax({
            async: false, // 默认true(异步请求)
            cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。
            type: "POST", // 默认:GET 请求方式:[POST/GET]
            url: _url, // 默认当前地址,发送请求的地址
            error: function(xml) {}, // 请求失败时调用
            timeout: 1000, // 设置请求超时时间
            data:"answerid=" + answerid,
            dataType: "json",
            success: function(xml) { // 请求成功后回调函数 参数：服务器返回数据,数据格式.
            	if (xml.code == 1)
            	{
                	var diggdata = diggOBJ.html();
            		var diggobj = JSON.parse(diggdata);
            		var curuserid = xml.html.userid;
            		
            		//处理支持者中有当前用户的情况
            		for(var i = 0; i < diggobj.dig.length; i++)
            		{
            			if (diggobj.dig[i].userid == curuserid)
            			{
            				diggobj.dig.splice(i, 1);
            				break;
            			}
            		}
            		
            		//处理来自html
            		var html = '';
            		var digglength = diggobj.dig.length;
            		
            		if (digglength > 0)
            		{
            			html += '，来自';
            		}
            		html += '<span>';
            		for(var i = 0; i < digglength; i++)
            		{
            			if (i < 3)
            			{
            				if (i != 0)
            				{
            					html += '、';
            				}
            				html += '<a href="' + siteUrl + 'group/user/'+ diggobj.dig[i].userid +'">' + diggobj.dig[i].username + '</a>';
            			}
            		}
            		html += '</span>';
            		
            		if (digglength > 3)
            		{
            			html += '<a data-id="" class="expandDiggers" href="javascript:void 0;">更多...</a><span class="hide">';
            			for(var i = 3; i < digglength; i++)
                		{
            				html += '、<a href="' + siteUrl + 'group/user/'+ diggobj.dig[i].userid +'">' + diggobj.dig[i].username + '</a>';
                		}
            			html += '</span>';
            		}
            		
            		diggobj.num.u = parseInt(diggobj.num.u) + 1;
            		//投过支持
            		if (xml.html.diggflag == true)
            		{
            			diggobj.num.d = parseInt(diggobj.num.d) - 1 < 0 ? 0 : parseInt(diggobj.num.d) - 1;
            		}
            		
            		html = diggobj.num.d + '支持&nbsp;&nbsp;/&nbsp;&nbsp;' + diggobj.num.u + '反对' + html;
            		diggersOBJ.html(html);
            		
            		//重置script data中的数据
            		var jtext = JSON.stringify(diggobj);
            		diggOBJ.html(jtext);
            	}
            	if (xml.code == 0)
            	{
            		alert(xml.html)
            	}
            }
       });
    })
    //删除
    $("#deleteAnswer").die("click").live("click",function(){
    	if(confirm("确定要删除答案？"))
    	{
    		var answerid = $(this).attr("data-id");
        	var _url = siteUrl+'index.php?app=ask&ac=ajax&ts=deleteAnswer';
        	$.ajax({
                async: false, // 默认true(异步请求)
                cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。
                type: "POST", // 默认:GET 请求方式:[POST/GET]
                url: _url, // 默认当前地址,发送请求的地址
                error: function(xml) {}, // 请求失败时调用
                timeout: 1000, // 设置请求超时时间
                data:"answerid=" + answerid,
                success: function(xml) { // 请求成功后回调函数 参数：服务器返回数据,数据格式.
//                	$("#answer"+answerid).remove();
                	window.location.reload();
                }
           });
    	}
    })
    //修改答案
    $("#editAnswer").die("click").live("click",function(){
    	var answerid = $(this).attr("data-id");
    	//判断是否已经打开
    	if ($("#answer-txt"+answerid).find("textarea").length > 0)
    	{
    		return;
    	}
    	var editans = $("#edit_ans");
    	var str = editans.html();
    	editans.html('');
    	$("#answer-txt"+answerid).html(str);
    	//pageInit("eidtbbcode");
    	
    	//修改答案确认
    	$("#answer-txt"+answerid+" #editAnswerPush").die("click").live("click",function(){
    		var answerid = $(this).attr("data-id");
    		var content = $.trim($(this).parent().parent().find("textarea").val());
    		var c = content.length;
    		if (0 == c)
            {
            	alert("请填写内容");
            	return false;
            }
            if (5E3 < c)
            {
            	alert("补充说明内容不能超过5000字");
            	return false;
            }
    		var _url = siteUrl+'index.php?app=ask&ac=ajax&ts=editAnswerPush';
        	$.ajax({
                async: false, // 默认true(异步请求)
                cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。
                type: "POST", // 默认:GET 请求方式:[POST/GET]
                url: _url, // 默认当前地址,发送请求的地址
                error: function(xml) {}, // 请求失败时调用
                timeout: 1000, // 设置请求超时时间
                data:"answerid=" + answerid+"&content="+content,
                dataType: "json",
                success: function(xml) { // 请求成功后回调函数 参数：服务器返回数据,数据格式.
                	if (xml.code == 1)
                	{
                		editans.html(str);
                		$("#answer-txt"+answerid).html(xml.html);
                		$("#eidtbbcode").html(content);
                		$("#edit_original").html(xml.html);
                	}
                	if(xml.code == 0)
                	{
                		alert(xml.html)
                	}
                }
           });
        	
    	})
    	//取消
    	$("#answer-txt"+answerid+" #cancelEditAnswer").die("click").live("click",function(){
    		if ('' == $("#edit_ans").html())
    		{
    			//恢复
    			editans.html(str);
    		}
    		$("#answer-txt"+answerid).html($("#edit_original").html());
    	})
    })
    
    //顶自来更多
    $("#answers .expandDiggers").die("click").live("click",function(){
    	var o = $(this).closest(".answer-diggers");
    	var str = o.find("span.hide").html();
    	$(o.find("span").get(0)).append(str)
    	$(this).remove();
    })
    
    //关闭问题
    $("#closeOrOpenQuestion").die("click").live("click",function(){
    	var askid = $(this).attr("data-id");
    	var _url = siteUrl+'index.php?app=ask&ac=ajax&ts=closeOrOpenQuestion';
    	$.ajax({
            async: false, // 默认true(异步请求)
            cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。
            type: "POST", // 默认:GET 请求方式:[POST/GET]
            url: _url, // 默认当前地址,发送请求的地址
            error: function(xml) {}, // 请求失败时调用
            timeout: 1000, // 设置请求超时时间
            data:"askid=" + askid,
            dataType: "json",
            success: function(xml) { // 请求成功后回调函数 参数：服务器返回数据,数据格式.
            	if (1 == xml.code)
            	{
            		window.location.reload();
            	}
            	if (0 == xml.code)
            	{
            		alert(xml.html)
            	}
            }
       });
    })
    
    //关注分类
    $("#tagList li a.followBt").die("click").live("click",function(){
    	var cateid = $(this).attr("data-id");
    	var _url = siteUrl+'index.php?app=ask&ac=ajax&ts=follow';
    	var obj = $(this);
    	
    	$.ajax({
            async: false, // 默认true(异步请求)
            cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。
            type: "POST", // 默认:GET 请求方式:[POST/GET]
            url: _url, // 默认当前地址,发送请求的地址
            error: function(xml) {}, // 请求失败时调用
            timeout: 1000, // 设置请求超时时间
            data:"cateid=" + cateid,
            success: function(xml) { // 请求成功后回调函数 参数：服务器返回数据,数据格式.
                if (1 == xml)
                {
                	if (obj.hasClass("side-tags-follow"))
                	{
                		obj.html("取消关注");
                		obj.removeClass("side-tags-follow").addClass("side-tags-unfollow");
                		obj.parent("li").find("p a.tag").addClass("selected");
                	}
                	else
                	{
                		if (obj.hasClass("side-tags-unfollow"))
                    	{
                			obj.html("关注");
                    		obj.removeClass("side-tags-unfollow").addClass("side-tags-follow");
                    		obj.parent("li").find("p a.tag").removeClass("selected");
                    	}
                	}
                }
            }
       });
    })
    
    //分类详细中的关注
    $("#mainTag a.followBt").die("click").live("click",function(){
    	var cateid = $(this).attr("data-id");
    	var _url = siteUrl+'index.php?app=ask&ac=ajax&ts=follow';
    	var obj = $(this);
    	
    	$.ajax({
            async: false, // 默认true(异步请求)
            cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。
            type: "POST", // 默认:GET 请求方式:[POST/GET]
            url: _url, // 默认当前地址,发送请求的地址
            error: function(xml) {}, // 请求失败时调用
            timeout: 1000, // 设置请求超时时间
            data:"cateid=" + cateid,
            success: function(xml) { // 请求成功后回调函数 参数：服务器返回数据,数据格式.
                if (1 == xml)
                {
                	if (obj.hasClass("main-tag-follow"))
                	{
                		obj.html("取消关注");
                		obj.removeClass("main-tag-follow").addClass("main-tag-unfollow");
                		obj.parent(".pack").find("h2 span.tag").addClass("selected");
                	}
                	else
                	{
                		if (obj.hasClass("main-tag-unfollow"))
                    	{
                			obj.html("关注");
                    		obj.removeClass("main-tag-unfollow").addClass("main-tag-follow");
                    		obj.parent(".pack").find("h2 span.tag").removeClass("selected");
                    	}
                	}
                }
            }
       });
    })
    
    //该分类的活跃达人
    $(".side-chippys .side-chippys-brief").bind("mouseover", function(){
    	$(".side-chippys .side-chippys-brief .pt-txt-d, .side-chippys .side-chippys-brief .pt-pic").show();
    }).bind("mouseout", function(){
    	$(".side-chippys .side-chippys-brief .pt-txt-d, .side-chippys .side-chippys-brief .pt-pic").hide();
    });
	
	//同时发布到小组
	$("#isSync").die("click").live("click",function(){
		if ($(this).is(":checked"))
		{
			$("#syncTarget").removeAttr("disabled");
		}
		else
		{
			$("#syncTarget").attr("disabled", "disabled");
		}
	})
	
	//显示更多答案
	$("#expandAnswer").die("click").live("click",function(){
		var _url = siteUrl+'index.php?app=ask&ac=ajax&ts=expandAnswer';
		var orderby = $("#orderby").val();
		var askid = $("#askid").val();
		var obj = $(this);
		var page = obj.attr("data-id");
		$.ajax({
            async: false, // 默认true(异步请求)
            cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。
            type: "POST", // 默认:GET 请求方式:[POST/GET]
            url: _url, // 默认当前地址,发送请求的地址
            error: function(xml) {}, // 请求失败时调用
            timeout: 1000, // 设置请求超时时间
            data:"page=" + page + "&askid=" + askid + "&orderby=" + orderby,
            success: function(xml) { // 请求成功后回调函数 参数：服务器返回数据,数据格式.
            	obj.after(xml);
            	obj.remove();
            }
       });
	})
	
	//添加讨论
	$(".cmtsBody .cmts-num").die("click").live("click",function(){
		$(this).closest(".cmtsBody").find(".cmtsList").toggle()
	})
	
	//添加讨论提交
	$(".cmtsBody .cmtsDo .mw_btn").die("click").live("click",function(){
		var dataid = $(this).attr("data-id");
		var datatype = $(this).attr("data-type");
		var textarea = $(this).closest(".cmtsDo").find(".b_txt");
		var content = $.trim(textarea.val());
		var ul = $(this).closest(".cmtsList").find("ul.cmts-list");
		
		var countaddobj = $(this).closest(".cmtsBody").find(".cmtsTitle a.cmts-num");
		var countadd = countaddobj.html();
		countadd = countadd.replace(/[^\d]/g,'');
		
		var _url = siteUrl+'index.php?app=ask&ac=ajax&ts=addcomment';
		if (content.length > 500)
		{
			alert("最多允许输入500字")
		}

		$.ajax({
            async: false, // 默认true(异步请求)
            cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。
            type: "POST", // 默认:GET 请求方式:[POST/GET]
            url: _url, // 默认当前地址,发送请求的地址
            error: function(xml) {}, // 请求失败时调用
            timeout: 1000, // 设置请求超时时间
            data:"dataid=" + dataid + "&datatype=" + datatype + "&content=" + content,
            dataType: "json",
            success: function(xml) { // 请求成功后回调函数 参数：服务器返回数据,数据格式.
            	if (0 == xml.code)
            	{
            		alert(xml.html)
            	}
            	if (1 == xml.code)
            	{
            		var html = '<li>' + xml.html.content;
            		html +=	' - <a  href="' + xml.html.home_url;
                    html += '">' + xml.html.username;
            		html +=	'</a> ' + xml.html.addtime;
            		html += ' <a class="cmts-list-d" data-operation="deleteCmt" data-id="' + xml.html.replyid;
            		html += '" href="javascript:void 0;">删除</a></li>';
            		ul.append(html);
            		textarea.val('');
            		if ('' == countadd)
            		{
            			countaddobj.html('1条讨论');
            		}
            		else
            		{
            			countadd = parseInt(countadd) + 1;
            			countaddobj.html(countadd + '条讨论');
            		}
            	}
            }
       });
	})
	
	//添加讨论提交删除
	$(".cmtsBody .cmts-list a.cmts-list-d").die("click").live("click",function(){
		var dataid = $(this).attr("data-id");
		var datatype = $(this).closest(".cmtsList").find(".cmtsDo .mw_btn").attr("data-type")
		var countaddobj = $(this).closest(".cmtsBody").find(".cmtsTitle a.cmts-num");
		var countadd = countaddobj.html();
		countadd = countadd.replace(/[^\d]/g,'');
		
		var _url = siteUrl+'index.php?app=ask&ac=ajax&ts=deladdcomment';
		var liobj = $(this).parent();
		$.ajax({
            async: false, // 默认true(异步请求)
            cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。
            type: "POST", // 默认:GET 请求方式:[POST/GET]
            url: _url, // 默认当前地址,发送请求的地址
            error: function(xml) {}, // 请求失败时调用
            timeout: 1000, // 设置请求超时时间
            data:"dataid=" + dataid + "&datatype=" + datatype,
            dataType: "json",
            success: function(xml) { // 请求成功后回调函数 参数：服务器返回数据,数据格式.
            	if (1 == xml.code)
            	{
            		liobj.remove();
            		countadd = parseInt(countadd) - 1;
            		if (0 == countadd)
            		{
            			countaddobj.html('添加讨论');
            		}
            		else
            		{
            			countaddobj.html(countadd + '条讨论');
            		}
            	}
            }
		})
	})
})

function nl2br (str, is_xhtml) {    
	var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';     
	return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2'); 
}

function format_dig(diggdata)
{
	var diggobj = JSON.parse(diggdata); 
	for($i = 0; $i < diggobj['dig'].length; $i++)
	{
		alert(diggobj['dig'][$i]['username']);
	}
}
